package com.own.business.system.user.business.service;


import com.own.business.system.user.entity.po.SystemUser;
import com.own.business.system.user.entity.vo.SystemUserVo;

import java.util.function.Supplier;

/**
 * SystemRegisterService
 *
 * @author chenxueli
 * @date 2021-09-02 20:18:00
 */
public interface SystemRegisterService {

    /**
     * 注册账号
     *
     * @param username    用户名
     * @param password    密码（明文）
     * @param type        类型
     * @param accountType 账号类型 1=普通用户 2=管理员
     * @return 用户信息
     */
    SystemUserVo register(String username, String password, String type, int accountType);

    /**
     * 注册账号
     *
     * @param userId      用户id
     * @param username    用户名
     * @param password    密码（明文）
     * @param type        类型
     * @param accountType 账号类型 1=普通用户 2=管理员
     * @return 用户信息
     */
    SystemUserVo register(Long userId, String username, String password, String type, int accountType);

    /**
     * 注册账号
     *
     * @param function    获取用户信息的函数
     * @param username    用户名
     * @param password    密码（明文）
     * @param type        类型
     * @param accountType 账号类型 1=普通用户 2=管理员
     * @return 用户信息
     */
    SystemUserVo register(Supplier<SystemUser> function, String username, String password, String type, int accountType);

}
